﻿using System;
using System.IO;
using System.Xml.Serialization;

namespace _030_XmlSerializer与XML序列化
{
    class Program
    {
        static void Main(string[] args)
        {

            string 文件名称 = "zoomla.xml";
            if (File.Exists(文件名称))
                File.Delete(文件名称);

            //序列化
            using (FileStream 序列化操作 = new FileStream(文件名称, FileMode.OpenOrCreate))
            {
                任务表 操作之 = new 任务表
                {
                    TaskID = 1001,
                    StartTime = new DateTime(2018, 9, 6, 14, 30, 0),
                    FinishTime = new DateTime(2018, 9, 7, 18, 0, 0),
                    TaskName = "Track #1",
                    TaskDesc = "Do Something"
                };
                XmlSerializer 数据处理 = new XmlSerializer(操作之.GetType());
                数据处理.Serialize(序列化操作, 操作之);
            }

                //执行反序列化，读出 任务表 实例的状态
                using (FileStream 序列化操作 = new FileStream(文件名称,FileMode.Open))
                {
                    XmlSerializer 进行操作了 = new XmlSerializer(typeof(任务表));
                    任务表 数据流动 = (任务表)进行操作了.Deserialize(序列化操作);
                    Console.WriteLine($"Task ID:{数据流动.TaskID}\nTask Name:{数据流动.TaskName}\nStart:{数据流动.StartTime}\nFinsh:{数据流动.FinishTime}\nDesc：{数据流动.TaskDesc}");
                }
                Console.Read();



        }
    }

    public class 任务表
    {
        public int TaskID { get; set; }
        public DateTime StartTime { get; set; }
        public DateTime FinishTime { get; set; }
        public string TaskName { get; set; }
        public string TaskDesc { get; set; }
    }


}
